﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestorDeFlotasModelo.Entities;
using GestorDeFlotasDesktop.UILogic;
using GestorDeFlotasModelo.Factorias;
using Persistencia;

namespace GestorDeFlotasDesktop.AbmTurno
{
    public partial class FormularioTurno : Form
    {
        private Turno turnoABM;
        private TransaccionSesion Transaccion;
        private  AbmTarifa.AbmTarifa abm;
        public FormularioTurno(TransaccionSesion ts, AbmTarifa.AbmTarifa abm)
        {
            InitializeComponent();
            Transaccion = ts;
            this.abm = abm;
        }

        public FormularioTurno(TransaccionSesion ts, Turno turno,AbmTarifa.AbmTarifa abm)
        {
            InitializeComponent();
            this.turnoABM = turno;
            Transaccion = ts;
            this.abm = abm;
        }

        protected override void OnVisibleChanged(EventArgs e)
        {
            base.OnVisibleChanged(e);
            if (this.turnoABM != null)
                this.CargarDatos();
        }

        private void CargarDatos()
        {
            txtDescripcion.Text = this.turnoABM.Descripcion;
            txtDesde.Text = this.turnoABM.HoraInicio.ToString();
            txtHasta.Text = this.turnoABM.HoraFin.ToString();
            txtValorBandera.Text = this.turnoABM.ValorBandera.ToString();
            txtValorFicha.Text = this.turnoABM.ValorFicha.ToString();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                this.AplicarCambios();
                MessageBox.Show("Se han aplicado los cambios");
                this.Hide();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void AplicarCambios()
        {
            if (int.Parse(txtDesde.Text) > int.Parse(txtHasta.Text))
            {
                MessageBox.Show("El turno debe comenzar y finalizar en el mismo dia");
                return;
            }

            Turno t=Transaccion.Factoria<FactoriaTurno>().Nuevo(txtDescripcion.Text, int.Parse(txtDesde.Text), int.Parse(txtHasta.Text), double.Parse(txtValorFicha.Text), double.Parse(txtValorBandera.Text));
            if (this.turnoABM != null)
            {
                this.turnoABM.Habilitado=false;
                Transaccion.Factoria<FactoriaTurno>().Suplantar(this.turnoABM);
            }
            abm.CargarTurnos();
        }

    }
}
